bdc call transaction mode 'A' and mode 'N' 您所在的位置:网站首页 transaction with bdc call transaction mode 'A' and mode 'N'

bdc call transaction mode 'A' and mode 'N'

#bdc call transaction mode 'A' and mode 'N' | 来源: 网络整理| 查看: 265

Hi all

In my below mentioned code statement bdc call transaction eg33 mode 'A' is working fine in both programs main program and called(submit) program (highlighted here). But if I give mode 'N' in both called and calling program call transaction the called program using submit is not at all called. Suggest me what to do if i want to run it in background.Write now its runing in foreground and user has to press enter many times which i want to avoid.

REPORT zac_eg33 NO STANDARD PAGE HEADING

LINE-SIZE 100.

TABLES: EABL,

BUT000,

ZISUH0003.

DATA: IT_STATUS TYPE ZISUH0003.

DATA: G_INDEX TYPE I,

G_START_COL TYPE I VALUE '1', "start column

G_START_ROW TYPE I VALUE '14', "start row

G_END_COL TYPE I VALUE '18', "maximum column

G_END_ROW TYPE I VALUE '75', "maximum row

G_TEXT(20), "stores error messages

G_PAGES TYPE I,

G_CURRENT_PAGE TYPE I,

G_COUNT LIKE SY-DBCNT.

data: l_file type file_table,

file1 type string,

l_title type string,

LENGTH TYPE I,

FILES type filetable,

SUBRC type i,

STR_FILE type STRING,

D_FILE type RLGRAP-FILENAME,

filename TYPE String,

L_itab_date(10).

FIELD-SYMBOLS : .

DATA msgtext(80).

DATA: IT_EXCEL LIKE STANDARD TABLE OF ALSMEX_TABLINE WITH HEADER LINE,

IT_MESS TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE.

TYPES: BEGIN OF TY_OPEN,

HAUS LIKE REG30-HAUS,

EADAT(10),

GERAETNEU LIKE REG30-GERAETNEU,

MESSDRCK LIKE REG30-MESSDRCK,

ZWSTANDCE LIKE REG30-ZWSTANDCE,

XYZ LIKE EGPLD-DEVLOC,

END OF TY_OPEN.

DATA : T_ANLAGE LIKE EANLD-ANLAGE,

VSTELLE LIKE EVBS-VSTELLE,

S_ANLAGE LIKE EANLD-ANLAGE,

temp_c(7).

DATA: IT_OPEN TYPE STANDARD TABLE OF TY_OPEN WITH HEADER LINE.

DATA: BDCDATA1 TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.

SELECTION-SCREEN SKIP 2.

PARAMETERS: P_FILE like RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN END OF BLOCK 1.

************************************************************************

************************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE .

PERFORM GET_FILE_NAME.

MOVE FILENAME TO P_FILE.

*START-OF-SELECTION.

*CLEAR IT_EXCEL.

START-OF-SELECTION.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = p_file

I_BEGIN_COL = 1 "VF_START_COL

I_BEGIN_ROW = 2 "VF_START_ROW

I_END_COL = 5 "VF_END_COL

I_END_ROW = 10000 "VF_END_ROW

TABLES

INTERN = IT_EXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

IF IT_EXCEL[] IS INITIAL.

G_TEXT = 'No Data Uploaded'.

ELSE.

SORT IT_EXCEL BY ROW COL.

LOOP AT IT_EXCEL.

MOVE : IT_EXCEL-COL TO G_INDEX.

ASSIGN COMPONENT G_INDEX OF STRUCTURE IT_OPEN TO .

MOVE IT_EXCEL-VALUE TO .

AT END OF ROW.

IF NOT IT_OPEN IS INITIAL.

APPEND IT_OPEN." TO IT_LINE.

CLEAR IT_OPEN.

CLEAR IT_EXCEL.

ENDIF.

ENDAT.

ENDLOOP.

ENDIF.

REFRESH IT_EXCEL.

ULINE.

FORMAT COLOR 3 ON.

WRITE: /1 sy-vline ,

2 'Material No.' ,

25 sy-vline,

2 'Logs' ,

100 sy-vline.

uline.

FORMAT COLOR OFF.

LOOP AT IT_OPEN.

REFRESH BDCDATA1.

clear : temp_c.

move it_open-MESSDRCK to temp_c.

condense : temp_c.

PERFORM MAP1.

*CALL TRANSACTION 'EG33' USING BDCDATA1 MODE 'A' MESSAGES INTO IT_MESS.

GET PARAMETER ID 'GEP' FIELD it_open-XYZ.

SET PARAMETER ID 'IFL' FIELD it_open-XYZ.

*MESSAGE X003(IA) INTO msgtext.

*IF MSGTEXT = 'Only single installation is allowed at functional location &'.

*EXIT.

*ELSE.

SUBMIT ZIL02_BDC and return.*

ENDIF.

DATA: G_INSNO LIKE IT_OPEN-HAUS.

IF NOT IT_MESS[] IS INITIAL.

G_INSNO = IT_OPEN-HAUS.

PERFORM GET_MESSAGES TABLES IT_MESS USING G_INSNO." IT_LINE.

ENDIF.

READ TABLE IT_MESS WITH KEY MSGTYP = 'E'.

IF SY-SUBRC NE 0.

READ TABLE IT_MESS WITH KEY MSGTYP = 'S' MSGNR = '622'.

IF SY-SUBRC EQ 0.

SELECT SINGLE VSTELLE FROM EVBS INTO VSTELLE WHERE HAUS = IT_OPEN-HAUS.

SELECT SINGLE ANLAGE FROM EANL INTO T_ANLAGE WHERE VSTELLE = VSTELLE.

MOVE T_ANLAGE TO IT_STATUS-ANLAGE.

MOVE 'X' TO IT_STATUS-RFC.

*perform get_date_format using IT_OPEN-EADAT.

MOVE IT_OPEN-EADAT TO IT_STATUS-ADATE.

SELECT SINGLE ANLAGE FROM ZISUH0003 INTO S_ANLAGE WHERE ANLAGE =

T_ANLAGE.

IF SY-SUBRC EQ 4.

INSERT ZISUH0003 FROM IT_STATUS.

ELSE.

UPDATE ZISUH0003 FROM IT_STATUS.

ENDIF.

ENDIF.

ENDIF.

REFRESH IT_MESS.

CLEAR IT_MESS.

ENDLOOP.

*PERFORM BDC_OPEN_READING.

MESSAGE S013(ZPS).

&----

*& Form GET_FILE_NAME

&----

text

----

--> p1 text

file_open_dialog

exporting

window_title = l_title

changing

file_table = files

rc = subrc

exceptions

file_open_dialog_failed = 1

cntl_error = 2

error_no_gui = 3

others = 4.

check sy-subrc = 0.

loop at files into l_file.

str_file = l_file.

move str_file to filename.

exit.

endloop.

ENDFORM. " GET_FILE_NAME

&----

*& Form BDC_OPEN_READING

&----

text

----

--> p1 text

p1 text

P_IT_ORDER_TABLE_C_DATE text

----

FORM get_date_format USING L_ITAB_DATE." LIKE SY-DATUM.

data: d_temp(4),

m_temp(2),

y_temp(4).

*move L_ITAB_DATE to L_ITAB_DATE.

y_temp = L_ITAB_DATE(4).

m_temp = L_ITAB_DATE+4(2).

d_temp = L_ITAB_DATE+6(2).

CONCATENATE d_temp '.' m_temp '.' y_temp into L_ITAB_DATE.

ENDFORM. " get_date_format

&----

*& Form GET_MESSAGES

&----

text

----

-->P_IT_MESS text

-->P_G_INSNO text

----

FORM GET_MESSAGES TABLES IT_MESS STRUCTURE BDCMSGCOLL USING G_INSNO .

TABLES T100.

DATA: L_MSTRING(255).

LOOP AT IT_MESS WHERE MSGTYP = 'E' OR MSGTYP = 'S'.

SELECT SINGLE * FROM T100 WHERE SPRSL = IT_MESS-MSGSPRA

AND ARBGB = IT_MESS-MSGID

AND MSGNR = IT_MESS-MSGNR.

IF SY-SUBRC = 0.

L_MSTRING = T100-TEXT.

IF L_MSTRING CS '&1'.

REPLACE '&1' WITH IT_MESS-MSGV1 INTO L_MSTRING.

REPLACE '&2' WITH IT_MESS-MSGV2 INTO L_MSTRING.

REPLACE '&3' WITH IT_MESS-MSGV3 INTO L_MSTRING.

REPLACE '&4' WITH IT_MESS-MSGV4 INTO L_MSTRING.

ELSE.

REPLACE '&' WITH IT_MESS-MSGV1 INTO L_MSTRING.

REPLACE '&' WITH IT_MESS-MSGV2 INTO L_MSTRING.

REPLACE '&' WITH IT_MESS-MSGV3 INTO L_MSTRING.

REPLACE '&' WITH IT_MESS-MSGV4 INTO L_MSTRING.

ENDIF.

CONDENSE L_MSTRING.

ENDIF.

CONDENSE G_INSNO.

CONCATENATE 'For' ' ' G_INSNO ',' L_MSTRING INTO L_MSTRING SEPARATED BY SPACE.

FORMAT COLOR 2 ON.

*IF IT_MESS-MSGTYP = 'S' AND IT_MESS-MSGNR = '622'.

*WRITE: 1 sy-vline,

L_MSTRING under 'Error Messages',

100 sy-vline.

*ULINE.

*ELSEIF IT_MESS-MSGTYP = 'E'.

WRITE: 1 sy-vline,

L_MSTRING under 'Logs',

100 sy-vline.

ULINE.

*ENDIF.

ENDLOOP.

ENDFORM. " GET_MESSAGES

code for ZIL02_BDC

.report ZIL02_BDC

no standard page heading line-size 255.

*data : XYZ LIKE EGPLD-DEVLOC.

TYPES: BEGIN OF TY_OPEN,

HAUS LIKE REG30-HAUS,

EADAT(10),

GERAETNEU LIKE REG30-GERAETNEU,

MESSDRCK LIKE REG30-MESSDRCK,

ZWSTANDCE LIKE REG30-ZWSTANDCE,

XYZ LIKE EGPLD-DEVLOC,

END OF TY_OPEN.

DATA: IT_OPEN TYPE STANDARD TABLE OF TY_OPEN WITH HEADER LINE.

DATA: BDCDATA TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.

GET PARAMETER ID 'GEP' FIELD it_open-XYZ.

DATA : IT_MESS TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE.

*include bdcrecx1.

start-of-selection.

perform bdc_dynpro using 'SAPMILO0' '1110'.

perform bdc_field using 'BDC_CURSOR'

'IFLO-TPLNR'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'IFLO-TPLNR'

it_open-xyz.

perform bdc_field using 'RILO0-TPLKZ'

'AO_GP'.

perform bdc_dynpro using 'SAPMILO0' '2100'.

perform bdc_field using 'BDC_CURSOR'

'IFLO-PLTXT'.

perform bdc_field using 'BDC_OKCODE'

'=T\04'.

perform bdc_field using 'IFLO-PLTXT'

'DEVICE LOCATION'.

perform bdc_dynpro using 'SAPMILO0' '2100'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'IFLO-PLTXT'

'DEVICE LOCATION'.

perform bdc_field using 'BDC_CURSOR'

'ITOBATTR-EINZL'.

perform bdc_field using 'ITOBATTR-IEQUI'

'X'.

perform bdc_field using 'ITOBATTR-EINZL'

'X'.

perform bdc_dynpro using 'SAPMILO0' '2100'.

perform bdc_field using 'BDC_OKCODE'

'=BU'.

perform bdc_field using 'IFLO-PLTXT'

'DEVICE LOCATION'.

perform bdc_field using 'BDC_CURSOR'

'ITOBATTR-EINZL'.

perform bdc_field using 'ITOBATTR-IEQUI'

'X'.

perform bdc_field using 'ITOBATTR-EINZL'

'X'.

CALL TRANSACTION 'IL02' USING BDCDATA MODE 'A' MESSAGES INTO IT_MESS.

----

Start new screen *

----

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM. "BDC_DYNPRO

----

Insert field *

----

FORM BDC_FIELD USING FNAM FVAL.

IF FVAL SPACE.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM. "BDC_FIELD



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有